home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / XML Utilities / Professional Programmer XSL IDE / Xselerator25.msi / Data.Cab / F29690_multiIntegrate.xsl < prev    next >
Encoding:
Extensible Markup Language  |  2001-10-31  |  1.2 KB  |  37 lines

  1. <xsl:stylesheet version="1.0" 
  2. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  3. xmlns:easy-integrate="easy-integrate"
  4. >
  5.   <xsl:import href="foldl.xsl"/>
  6.   
  7.   <xsl:output method="text"/>
  8.   
  9.   <easy-integrate:easy-integrate/>
  10.   
  11.   <xsl:template name="multiIntegrate">
  12.     <xsl:param name="pList" select="/.."/>
  13.     
  14.     <xsl:variable name="vmyeasyIntegrateFn" select="document('')/*/easy-integrate:*[1]"/>
  15.     
  16.       <xsl:call-template name="foldl">
  17.         <xsl:with-param name="pFunc" select="$vmyeasyIntegrateFn"/>
  18.         <xsl:with-param name="pList" select="$pList[position() > 1 
  19.                                               and position() < last()]"/>
  20.         <xsl:with-param name="pA0" select="0"/>
  21.       </xsl:call-template>
  22.     
  23.   </xsl:template>
  24.   
  25.   <xsl:template name="myEasyIntegrateFn" match="*[namespace-uri()='easy-integrate']">
  26.     <xsl:param name="arg1" select="0"/> <!-- pA0 -->
  27.     <xsl:param name="arg2" select="0"/> <!-- node -->
  28.     
  29.     <xsl:value-of 
  30.        select="$arg1 
  31.              + 
  32.                (($arg2 + $arg2/following-sibling::*[1]) 
  33.                  div 2
  34.                 ) * $arg2/../*[1]"/>
  35.   
  36.   </xsl:template>
  37. </xsl:stylesheet>